/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.insta.browser.service.history;

import fr.insta.browser.domain.IHistoryEntry;
import javax.swing.ImageIcon;

/**
 * Service de gestion d'historique
 *
 * @author Maarek
 * @version $Id: $Id
 */
public interface IHistoryService extends Iterable<IHistoryEntry> {

    /**
     * Ajoute une entrée à l'historique
     *
     * @param url L'url de l'entrée
     * @param title Le titre de l'entrée
     * @param icon  Le favicon de l'entrée
     */
    void addEntry(String url, String title, ImageIcon icon);

    /**
     * Ajoute un listener, permettant d'écouté les changements sur l'historique
     *
     * @param listener Le listener
     */
    void addListener(ChangeHistoryListener listener);

    /**
     * Supprimer un listener
     *
     * @param listener a {@link fr.insta.browser.service.history.ChangeHistoryListener} object.
     */
    void removeListener(ChangeHistoryListener listener);
}
